SATT ACADEMY

New to Satt Academy? Create an account


or

Log in with Google Account

Admission
On This Page
Please, contribute to add content into এসকিউএল ব্যাসিক (SQL Basic).
Content

এসকিউএল - SQL : রিলেশনাল ডেটাবেজ(Relational Database)-কে এক্সেস করার জন্য SQL একটি স্ট্যান্ডার্ড ভাষা।


সুতরাং MySQL, SQL Server, Access, Oracle, Sybase, DB2 ইত্যাদি রিলেশনাল ডেটাবেজ সিস্টেমকে এক্সেস করার জন্য SQL হলো একটি স্টান্ডার্ড ভাষা।

আমাদের এই এসকিউএল টিউটোরিয়ালটিতে SQL এর একেবারে ব্যাসিক থেকে এডভ্যান্স টপিক্স-সমূহও যোগ করেছি। ফলে এই টিউটোরিয়াল শেষে এডভ্যান্স SQL বুঝার জন্য আপনাকে প্রস্তুত করে তুলবে।


উদাহরণ

kt_satt_skill_example_id=1341

রিলেশনাল ডেটাবেজ(Relational Database) এ তথ্য জমা(store), পুনরুদ্ধার(retrive) এবং পরিচালনার(manipulating) জন্য SQL একটি স্টান্ডার্ড ভাষা।


এসকিউএল কি?(What is SQL? )

এসকিউএল(SQL) হলো স্ট্রাকচার্ড কুয়েরি ল্যাঙ্গুয়েজ(Structured Query Language) যা রিলেশনাল ডেটাবেজে সঞ্চিত ডেটা সংরক্ষণ, পুনরুদ্ধার এবং পরিচালনার জন্য ব্যবহৃত একটি স্টান্ডার্ড ভাষা।

MySQL, SQL Server, Access, Oracle, Sybase ইত্যাদি রিলেশনাল ডেটাবেজ ম্যানেজমেন্ট সিস্টেম-সমূহ(RDBMS) SQL কে স্টান্ডার্ড ভাষা হিসাবে ব্যবহার করে।

  • SQL এর পূর্ণরূপঃ Structured Query Language ।
  • SQL এর মাধ্যমে আপনি রিলেশনাল ডেটাবেজে এক্সেস করতে পারবেন।
  • SQL একটি ANSI(American National Standards Institute) স্ট্যান্ডার্ড।

SQL কি কি করতে পারে?

  • SQL ইউজারকে রিলেশনাল ডেটাবেজ ম্যানেজমেন্ট সিস্টেম থেকে ডেটা এক্সেস করতে অনুমতি দেয়।
  • SQL ডেটাবেজে কুয়েরি সম্পাদন করতে পারে।
  • SQL নতুন ডেটাবেজ তৈরি করতে পারে।
  • SQL ডেটাবেজে নতুন টেবিল তৈরি করতে পারে।
  • SQL ডেটাবেজ থেকে তথ্য পুনরূদ্ধার করতে পারে।
  • SQL ডেটাবেজে তথ্য সংরক্ষন করতে পারে।
  • SQL ডেটাবেজে তথ্য হালনাগাদ করতে পারে।
  • SQL ডেটাবেজ থেকে তথ্য মুছে ফেলতে পারে।
  • SQL ডেটাবেজের মধ্যে তথ্য সংরক্ষণ পদ্ধতি তৈরি করতে পারে।
  • SQL ডেটাবেজের ভিউ(view) তৈরি করতে পারে।
  • SQL ডেটাবেজে টেবিল, কার্যপ্রনালী এবং ভিউ এর উপর পারমিশন সেট করতে পারে।
  • SQL ডেটাবেজে যে কোন কার্য-সম্পাদন করতে পারে।

SQL একটি স্ট্যান্ডার্ড

SQL ভাষা ANSI(American National Standards Institute) স্ট্যান্ডার্ড হওয়া সত্ত্বেও এর কিছু ভিন্ন ভার্সনও রয়েছে।

যাইহোক, ANSI স্ট্যান্ডার্ড মেনে চলার জন্য SQL এর সকল ভার্সন-ই প্রধান প্রধান কমান্ড-সমূহ যেমন- CREATE, SELECT, UPDATE, DELETE, INSERT, WHERE ইত্যাদি সাপোর্ট করে।


ওয়েব সাইটে SQL এর ব্যবহার

ডেটাবেজ থেকে তথ্য দেখাবে এমন একটি ওয়েব-সাইট তৈরী করতে যা প্রয়োজন হবেঃ

  • একটি RDBMS ডেটাবেজ প্রোগ্রাম। যেমন- MS Access, SQL Server, MySQL ইত্যাদি।
  • একটি সার্ভার সাইড স্ক্রিপ্টিং ভাষা। যেমন- PHP অথবা ASP
  • ডেটাবেজ থেকে যে কোনো তথ্য পেতে আপনাকে SQL(Sql) ব্যবহার করতে হবে।
  • এছাড়া ডায়নামিকভাবে তথ্য এক্সেস করতে চাইলে SQL এর সাথে Ajax অথবা Jquery-ও ব্যবহার করতে পারেন।

RDBMS

RDBMS এর পূর্ণরূপঃ Relational Database Management System.

RDBMS হলো SQL এর ভিত্তি এবং সকল মর্ডান ডেটাবেজ সিস্টেমেরও ভিত্তি। যেমন- MS SQL Server, IBM DB2, Oracle, MySQL এবং Microsoft Access।

তথ্য-সমূহ RDBMS ডেটাবেজ এর অবজেক্টে সংরক্ষিত থাকে, আমাদের কাছে এই অবজেক্টগুলো টেবিল নামে পরিচিত। একটি টেবিল সম্মন্ধযুক্ত কিছু তথ্যের(data) সংগ্রহ যা কলাম(field) এবং সারি(tuple/record) নিয়ে গঠিত। আমাদের সকল তথ্য ডেটাবেজের এই কলাম এবং সারির মধ্যেই সংরক্ষিত হয়/থাকে।

 

এসকিউএল টিউটোরিয়াল লিস্ট


এসকিউএল ব্যাসিক টিউটোরিয়াল

হোম-Home সিনটেক্স-Syntax ডেটাবেস তৈরী-Create DB টেবিল তৈরী-Create Table ড্রপ-Drop সিলেক্ট-Select ইনসার্ট ইন্টু-Insert Into এসকিউএল-Where এসকিউএল-And এবং Or আপডেট-Update ডিলিট-Delete লাইক-Like সিলেক্ট টপ-Select Top অর্ডার বাই-Order By গ্রুপ বাই-Group By ডিস্টিংক্ট-Distinct সিলেক্ট ইন্টু-Select Into ইনসার্ট ইন্টু সিলেক্ট-Insert Into Select এসকিউএল-Not Null ইউনিক-Unique ডিফল্ট-Default চেক-Check প্রাইমারি কি-Primary Key ফরেন কি-Foreign Key এসকিউএল-In এসকিউএল-Between এসকিউএল-Auto Increment

 

এসকিউএল ডাটাবেস টিউটোরিয়াল

কনস্ট্রেইন্ট-Constraints এসকিউএল-Joins এসকিউএল-Inner Join এসকিউএল-Left Join এসকিউএল-Right Join এসকিউএল-Full Join এসকিউএল-Union এসকিউএল-Null Values এসকিউএল-Null Functions এসকিউএল-Aliases এসকিউএল-Create Index এসকিউএল-Alter এসকিউএল-Views এসকিউএল-Having এসকিউএল-Wildcards এসকিউএল-Dates এসকিউএল-Data Types

 

এসকিউএল ফাংশন টিউটোরিয়াল

এসকিউএল-Functions এসকিউএল-Avg() এসকিউএল-Count() এসকিউএল-First() এসকিউএল-Last() এসকিউএল-Max() এসকিউএল-Min() এসকিউএল-Sum() এসকিউএল-Ucase() এসকিউএল-Lcase() এসকিউএল-Mid() এসকিউএল-Len() এসকিউএল-Round() এসকিউএল-Now() এসকিউএল-Format()

 

অ্যাডভান্স এসকিউএল টিউটোরিয়াল

এসকিউএল-অস্থায়ী(Temporary) টেবিল এসকিউএল-Injection এসকিউএল-Hosting

Content added || updated By

ডেটাবেজ টেবিল

একটি ডেটাবেজে প্রায়ই এক বা একাধিক টেবিল থাকে। প্রতিটি টেবিলকেই নির্দিষ্ট নাম দ্বারা শনাক্ত করা হয়। যেমন- "Student_details" অথবা "Student_result"। টেবিলের প্রতিটি সারি তথ্য নিয়ে গঠিত হয়।

উদাহরণ হিসাবে আমরা আমাদের টিউটোরিয়ালে একটি নমুনা ডেটাবেজ ব্যবহার করবো।

উদাহরণস্বরুপঃ নিচের অংশটুকু নমুনা ডেটাবেজের "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

ক্রমিক নংশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

উপরের টেবিলটিতে পাঁচটি সারি(প্রতি সারিতে একজন শিক্ষার্থী) এবং চারটি কলাম রয়েছে (ক্রমিক নং, শিক্ষার্থীর নাম, প্রতিষ্ঠানের নাম এবং ঠিকানা) যাহাতে ৫ জন শিক্ষার্থীর সম্পর্কে বিস্তারিত তথ্য রয়েছে।


SQL স্টেটমেন্ট(কমান্ড)

SQL স্টেটমেন্ট(statement) এর মাধ্যমে ডেটাবেজের বেশির ভাগ ক্রিয়াকলাপ সম্পাদিত হয়।

নিচের SQL স্টেটমেন্টটি "Student_details" টেবিল থেকে সকল রেকর্ড সিলেক্ট করবেঃ

উদাহরণ

kt_satt_skill_example_id=1343

আমাদের এই টিউটোরিয়ালে অধিকাংশ SQL স্টেটমেন্ট পর্যায়ক্রমে তুলে ধরা হয়েছে।

আমাদের এই টিউটোরিয়ালে আমরা SQL কীওয়ার্ড-সমূহকে বড়-হাতের অক্ষরে লিখবো। এর দরুন আমরা SQL কীওয়ার্ড-সমূহকে SQL স্টেটমেন্টের মধ্যে খুব সহজেই শনাক্ত করতে পারবো।


সেমিকোলন(;) এর ব্যবহার

কিছু কিছু ডেটাবেজ সিস্টেমে প্রতিটি SQL স্টেটমেন্টের শেষে একটি সেমিকোলন(;) ব্যবহার করতে হয়।

ডেটাবেজ সিস্টেমে স্টেটমেন্ট-সমূহকে আলাদা করার আদর্শ উপায় হলো সেমিকোলন(;) যা ডেটাবেজ সিস্টেম সার্ভারে একই সাথে একাধিক SQL স্টেটমেন্ট এক্সিকিউট করতে পারে।

এই টিউটোরিয়ালের প্রতিটি SQL স্টেটমেন্টের শেষে আমরা সেমিকোলন ব্যবহার করবো।


সচরাচর ব্যবহৃত SQL কমান্ড-সমূহ

  • USE - ডিফল্ট ডেটাবেজ সিলেক্ট করে।
  • DESCRIBE - ডেটাবেজের টেবিলের গঠন দেখায়।
  • SELECT - ডেটাবেজ থেকে তথ্য পুনরূদ্ধার(retrieve) করে।
  • UPDATE - ডেটাবেজের তথ্য আপডেট করে।
  • DELETE - ডেটাবেজ থেকে তথ্য ডিলেট করে।
  • INSERT INTO - ডেটাবেজে নতুন তথ্য প্রবেশ করায়।
  • CREATE DATABASE - নতুন ডেটাবেজ তৈরি করে।
  • ALTER DATABASE - ডেটাবেজ পরিবর্তন করে।
  • CREATE TABLE - নতুন টেবিল তৈরি করে।
  • ALTER TABLE - টেবিল পরিবর্তন করে।
  • DROP TABLE - টেবিল ডিলেট করে।
  • CREATE INDEX - ইন্ডেক্স তৈরি করে।
  • DROP INDEX - ইন্ডেক্স ডিলেট করে।

 

Content added || updated By

একটি ডেটাবেজ তৈরি করতে CREATE DATABASE স্টেটমেন্ট ব্যবহার করা হয়।

SQL CREATE DATABASE সিনট্যাক্স

kt_satt_skill_example_id=1346

SQL CREATE DATABASE উদাহরণ

নিম্নের SQL স্টেটমেন্টটি "student" নামে একটি ডেটাবেজ তৈরি করেঃ

kt_satt_skill_example_id=1347

CREATE  TABLE স্টেটমেন্টটি ডেটাবেজে নতুন টেবিল তৈরি করে।

Content added || updated By
Please, contribute to add content into এসকিউএল ড্রপ ডিবি (SQL Drop DB).
Content
Please, contribute to add content into এসকিউএল ব্যাকআপ ডিবি (SQL Backup DB).
Content

ডেটাবেজে নতুন টেবিল তৈরি করতে CREATE    TABLE স্টেটমেন্ট ব্যবহার করা হয়।

একটি টেবিল সাধারণত কলাম এবং সারি নিয়ে গঠিত হয় এবং সনাক্ত করার জন্য প্রতিটি টেবিলের অবশ্যই একটি নাম থাকতে হবে।

SQL CREATE TABLE সিনটেক্স

shortcode

"name_of_column" প্যারামিটারটি কলামের নাম ঠিক করে। "data_type" প্যারামিটারটি কলামের ডেটার টাইপ ঠিক করে। যেমন- varchar, integer, decimal, date, text ইত্যাদি। "size" প্যারামিটারটি কলামের দৈর্ঘ্য ঠিক করে অর্থাৎ কলামের ডেটা কতটি অক্ষর ধারন করবে তা নির্ধারন করে।


SQL CREATE TABLE উদাহরণ

এখন আমরা "Student_details" নামে একটি টেবিল তৈরি করবো যার মধ্যে ৫টি কলাম থাকবেঃ "id", "roll_number", "student_name", "institute" এবং "address"।

আমরা নিম্নে CREATE   TABLE স্টেটমেন্টটি ব্যবহার করবোঃ

উদাহরণ

shortcode

"id" কলামের ডেটা টাইপ int হওয়ায় এটি শুধুমাত্র পূর্ণসংখ্যা জমা রাখবে। "id" এর auto_increment নিয়ে আমরা পরবর্তীতে আলোচনা করবো। "roll_number", "student_name", "institute" এবং "address" কলাম গুলোর ডেটা টাইপ varchar হওয়ায় এরা অক্ষর/বর্ণ জমা রাখবে এবং এদের সর্বোচ্চ দৈর্ঘ্য হবে ২৫৫টি বর্ণ।

ফাঁকা "Student_details" টেবিলটি নিম্নের ন্যায় দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
     
Content added By

একটি বিদ্যমান টেবিলে নতুন কলাম যোগ করতে, কলাম ডিলেট করতে অথবা কোন কলাম পরিবর্তন করতে ALTER TABLE স্টেটমেন্ট ব্যবহার করা হয়।

SQL ALTER TABLE সিনট্যাক্স

একটি টেবিলে নতুন কলাম যোগ করতে নিম্নের সিনট্যাক্সটি ব্যবহার করুনঃ

ALTER TABLE name_of_table
ADD name_of_column datatype;

 


 

টেবিলে থেকে কলাম ডিলেট করতে নিম্নের সিনট্যাক্সটি ব্যবহার করুনঃ

ALTER TABLE name_of_table
DROP name_of_column;

 


 

টেবিলে কলামের ডেটা টাইপ পরিবর্তন করতে নিম্নের সিনট্যাক্সটি ব্যবহার করুনঃ

MySQL/Oracle(10G এর আগের ভার্সন) এর জন্যঃ

ALTER TABLE name_of_table
MODIFY COLUMN name_of_column datatype;

 


 

Oracle(10G এবং এর পরবর্তী ভার্সন) এর জন্যঃ

ALTER TABLE name_of_table
MODIFY name_of_column datatype;

 


 

SQL Server/MS Access এর জন্যঃ

ALTER TABLE name_of_table
ALTER COLUMN name_of_column datatype;

 

 

SQL ALTER TABLE এর উদাহরণ

নিম্নের "Student_details" টেবিলটি লক্ষ্য করুনঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

এখন আমরা "Student_details" টেবিলে "জন্ম তারিখ(Birthday)" নামে একটি কলাম যোগ করবো।

এর জন্য আমরা নিম্নবর্তী SQL স্টেটমেন্টটি ব্যবহার করবোঃ

ALTER TABLE Student_details
ADD Birthday date;

 

লক্ষ্য করুন "জন্ম তারিখ(Birthday)" কলামটির ডেটা টাইপ হলো date অর্থাৎ এটি তারিখ জমা রাখবে।

এখন "Student_details" টেবিলেটি নিম্নের ন্যায় দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানাজন্ম তারিখ
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর 
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর 
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর 
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর 
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর 

ডেটা টাইপ পরিবর্তনের উদাহরণ

এখন আমরা "Student_details" টেবিলের "জন্ম তারিখ(Birthday)" কলামের ডেটা টাইপ পরিবর্তন করবোঃ

ALTER TABLE Student_details
ALTER COLUMN Birthday year;

 

লক্ষ্য করুন "জন্ম তারিখ(Birthday)" কলামটির ডেটা টাইপ এখন year অর্থাৎ এটি শুধুমাত্র দুই/চার ডিজিটের ফরম্যাটে বছর জমা রাখবে।


DROP COLUMN এর উদাহরণ

এখন আমরা "Student_details" টেবিলের "জন্ম তারিখ(Birthday)" কলামটিকে ডিলেট করবোঃ

ALTER TABLE Student_details
DROP COLUMN Birthday;

 

এখন "Student_details" টেবিলেটি নিম্নের ন্যায় দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
Content added By

ROP স্টেটমেন্টটি ব্যবহার করে খুব সহজেই ইনডেক্স, টেবিল এবং ডেটাবেজ ডিলেট করা যায়।


DROP INDEX স্টেটমেন্ট

DROP INDEX স্টেটমেন্টটি ব্যবহার করে একটি টেবিলের ইনডেক্স ডিলেট করা হয়।


 

MS Access এর জন্য DROP INDEX সিনট্যাক্স

DROP INDEX name_of_index ON name_of_table

 


 

SQL Server এর জন্য DROP INDEX সিনট্যাক্সঃ

DROP INDEX name_of_table.name_of_index

 


 

DB2/Oracle এর জন্য DROP INDEX সিনট্যাক্সঃ

DROP INDEX name_of_index

 


 

MySQL এর জন্য DROP INDEX সিনট্যাক্সঃ

ALTER TABLE name_of_table DROP INDEX name_of_index

 


 

DROP TABLE স্টেটমেন্ট

DROP TABLE স্টেটমেন্টটি ব্যবহার করে একটি টেবিল ডিলেট করা হয়।

DROP TABLE name_of_table

 


DROP DATABASE স্টেটমেন্ট

DROP DATABASE স্টেটমেন্টটি ব্যবহার করে একটি ডেটাবেজ ডিলেট করা হয়।

DROP DATABASE name_of_database

 


TRUNCATE TABLE স্টেটমেন্ট

যদি আপনার শুধুমাত্র টেবিলের তথ্য-সমূহ ডিলেট করার প্রয়োজন হয় তাহলে আপনি কী করবেন?

সেক্ষেত্রে আপনি TRUNCATE TABLE স্টেটমেন্টটি ব্যবহার করতে পারেনঃ

TRUNCATE TABLE name_of_table
Content added By

ডেটাবেজ থেকে তথ্য(Data) সিলেক্ট/পুনরূদ্ধার করতে SQL SELECT স্টেটমেন্টটি ব্যবহার করা হয়।


SQL SELECT স্টেটমেন্ট

SELECT স্টেটমেন্টটি ডেটাবেজ থেকে তথ্য সিলেক্ট করে।

ডেটাবেজ থেকে রিটার্ন ডেটা ফলাফল টেবিলে জমা হয়, যাহাকে আমরা result-set বলে থাকি।

SQL SELECT স্টেটমেন্টের সিনট্যাক্স

SELECT name_of_column, name_of_column FROM name_of_table;

 

এবং

SELECT * FROM name_of_table;

 

এখানে name_of_column হলো টেবিলের মধ্যে কলামের নাম এবং name_of_table হলো টেবিলের নাম।


 

নমুনা ডেটাবেজ

SELECT স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

উদাহরণস্বরূপঃ SELECT স্টেটমেন্ট ব্যবহার করে "Student_details" টেবিল থেকে নিচের অংশটুকু নেওয়া(select) হয়েছে।

ক্রমিক নংশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

নির্দিষ্ট কলাম SELECT করা

নিম্নের SQL SELECT স্টেটমেন্টটি "Student_details" টেবিলের "শিক্ষার্থীর নাম(Student_name)" এবং "প্রতিষ্ঠানের নাম(Institute)" এই দুই কলামকে সিলেক্ট করবেঃ

উদাহরণ

SELECT Student_name, Institute FROM Student_details;

 


সকল(*) কলাম SELECT করা

নিম্নের SELECT স্টেটমেন্টটি "Student_details" টেবিলের সকল কলামকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details;

 


Result-set ন্যাভিগেশন

ডেটাবেজ সফটওয়ার সিস্টেমে Result-set ন্যাভিগেশন ব্যবহার করা হয়। এটি প্রোগ্রামিং ফাংশন। এর গুরুত্বপূর্ণ কিছু ফাংশন হলোঃ Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, Get-Record-Count ইত্যাদি।

এই ধরনের প্রোগ্রামিং ফাংশন গুলো আমাদের SQL টিউটোরিয়ালের অংশ নয়। ডেটাবেজ তথ্যকে প্রোগ্রামিং ফাংশন এর মাধ্যমে অ্যাক্সেস করা শিখতে হলে, অনুগ্রহ করে আমাদের পিএইচপি টিউটোরিয়াল দেখুন।

Content added By

ডেটাবেজে একই তথ্য একাধিকবার থাকলে SELECT DISTINCT স্টেটমেন্টটি ব্যবহার করলে ডুপ্লিকেট তথ্য গুলোর শুধুমাত্র একটি আউটপুট আসে।


SQL SELECT DISTINCT স্টেটমেন্ট

ডেটাবেজর টেবিলে একই তথ্য একাধিকবার থাকতে পারে, এই ডুপ্লিকেট তথ্য গুলোকে একক ভাবে পেতে আপনি SELECT DISTINCT স্টেটমেন্টটি ব্যবহার করতে পারেন। SELECT DISTINCT স্টেটমেন্টটি দ্বারা আপনার ডেটাবেজের অন্তর্ভুক্ত ডুপ্লিকেট তথ্য বাদ দিয়ে স্বতন্ত্রভাবে তালিকাবদ্ধ করতে পারবেন।

DISTINCT কিওয়ার্ডটি ব্যবহার করে আপনি শুধুমাত্র স্বতন্ত্র মানগুলো পেতে পারেন।

SQL SELECT DISTINCT স্টেটমেন্ট গঠন

SELECT DISTINCT name_of_column's
FROM name_of_table;

 


 

নমুনা ডেটাবেজ

SELECT DISTINCT স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

SELECT DISTINCT উদাহরণ

নিম্নের SQL DISTINCTস্টেটমেন্টটি "Student_details" টেবিলের "ঠিকানা(Address)" কলামকে সিলেক্ট করবেঃ

উদাহরণ

SELECT DISTINCT Address FROM Student_details;
Content added By

INSERT INTO স্টেটমেন্টটি ব্যবহার করে ডেটাবেজের টেবিলে নতুন তথ্য সংযোগ(insert) করা যায়।


SQL INSERT INTO স্টেটমেন্ট

INSERT INTO স্টেটমেন্টটি ব্যবহার করে ডেটাবেজের টেবিলে নতুন তথ্য সংযোগ করা যায়।

INSERT INTO সিনট্যাক্স

INSERT INTO স্টেটমেন্টটি দুইভাবে লেখা যেতে পারে।

পদ্ধতি১ঃ নিম্নের সিনট্যাক্সে শুধুমাত্র ভ্যালু নির্দিষ্ট করে দেওয়া হয়েছে। কলামের নাম নির্দিষ্ট করে দেওয়া হয় নি।

INSERT INTO name_of_table VALUES (value1,value2,value3,...);

 


 

পদ্ধতি২ঃ নিম্নের সিনট্যাক্সে কলাম নাম এবং এর ভ্যালু নির্দিষ্ট করে দেওয়া হয়েছেঃ

INSERT INTO name_of_table (name_of_column1,name_of_column2,name_of_column3,...)
VALUES (value1,value2,value3,...);

 

বিঃদ্রঃ টেবিলে ডেটা INSERT  করার সময় যদি কলামের নাম ব্যবহার না করেন তাহলে ভ্যালু-সমূহের ক্রম কলাম অনুযায়ী ঠিক রাখতে হবে।


নমুনা ডাটাবেস

INSERT INTO স্টেটমেন্টের ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

উদাহরণস্বরূপঃ SELECT স্টেটমেন্ট ব্যবহার করে "Student_details" টেবিল থেকে নিচের অংশটুকু নেওয়া(select) হয়েছে।

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

টেবিলে নতুন তথ্য INSERT করা

নিম্নের কোড ব্যবহার করে "Student_details" টেবিলে আপনি একটি নতুন সারি(রেকর্ড) যোগ করতে পারবেন।

উদাহরণ

INSERT INTO Student_details (Roll_number, Student_name, Institute, Address)
VALUES ('১০৬','নাসির হোসেন','জাতীয় বিশ্ববিদ্যালয়','চাঁদপুর'); 

 


 

এখন "Student_details" টেবিলের তথ্যগুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৬নাসির হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

আপনি কি লক্ষ্য করেছেন যে, "আইডি নং(Id)" ফিল্ডে আমরা কোনো নম্বর ইনপুট দেইনি?
টেবিলের "আইডি নং(Id)" কলামটিতে AUTO_INCREMENT সেট করার ফলে টেবিলে নতুন রেকর্ড যোগ হলেই এর ভ্যালু স্বয়ংক্রিয়ভাবে এক বৃদ্ধি পাবে।


নির্দিষ্ট কলামে তথ্য ইনপুট করা

শুধুমাত্র নির্দিষ্ট কিছু কলামেও তথ্য ইনপুট করা সম্ভব।

নিম্নের INSERT INTO স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন রেকর্ড যুক্ত করবে। কিন্তু শুধুমাত্র "শিক্ষার্থীর নাম(Student_name)", "প্রতিষ্ঠানের নাম(Institute)" এবং "ঠিকানা(Address)" কলামে তথ্য ইনপুট নিবে এবং "Id" কলামটি স্বয়ংক্রিয়ভাবে এর ভ্যালু এক বদ্ধি করে নিজেকে আপডেট করে নিবেঃ

উদাহরণ

INSERT INTO Student_details (Student_name, Institute)
VALUES ('মোঃ ফয়সাল ইসলাম','জাতীয় বিশ্ববিদ্যালয়', 'রাজশাহী'); 

 


 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৬নাসির হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
খালি(null)মোঃ ফয়সাল ইসলামজাতীয় বিশ্ববিদ্যালয়রাজশাহী
Content added By

রেকর্ড ফিল্টার করার জন্য SQL WHERE clause ব্যবহৃত হয়।


SQl WHERE Clause 

নির্দিষ্ট শর্ত সাপেক্ষে ডেটাবেজ থেকে তথ্য পুনরূদ্ধারের জন্য SQL WHERE clause ব্যবহার করা হয়। কেবল শর্ত পূরন হলেই আপনি আপনার কাংখিত ফলাফল পাবেন।

SQl WHERE সিনট্যাক্স

SELECT name_of_column, name_of_column
FROM name_of_table
WHERE name_of_column operator value;

 

WHERE clause শুধু তথ্য সিলেক্টের জন্য নয় , বরং তথ্য আপডেট এবং ডিলেট করার জন্যও ব্যবহার করা হয়।

বিঃদ্রঃ SQL এর WHERE clause অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ এর কন্ডিশনাল(If) স্টেটমেন্টের মতই।


নমুনা ডেটাবেজ

WHERE clause এর ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।


WHERE Clause এর মাধ্যমে তথ্য সিলেক্ট করা

নিম্নের SQl WHERE  স্টেটমেন্টটি "Student_details" টেবিলের "ঢাকা" ঠিকানা অন্তর্ভুক্ত সকল শিক্ষার্থীকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address="ঢাকা";

 


টেক্সট বনাম সংখ্যা

SQl এ টেক্সট লেখার জন্য একক উদ্ধৃতির প্রয়োজন হয়। অনেক ডেটাবেজে ডাবল উদ্ধৃতি চিহ্নের প্রয়োজনও হতে পারে।

যাইহোক, সাংখ্যার ক্ষেত্রে উদ্ধৃতি চিহ্ন(' ') ব্যবহারের প্রয়োজন হয় না।

উদাহরণ

SELECT * FROM Student_details
WHERE Id=1;

 


WHERE Clause অপারেটর

নিম্নের অপারেটর গুলো WHERE clause এ ব্যবহার করা হয়ঃ

অপারেটরবর্ণনা
=সমান
<>সমান না। বিঃদ্রঃ কিছু SQl ভার্সনে এই অপারেটকে != হিসেবে ব্যবহার করা হয়
>বড়
<ছোট
>=বড় অথবা সমান
<=ছোট অথবা সমান
BETWEENএকটি নির্দিষ্ট সীমার মধ্যে
LIKEসার্চ এর জন্য প্যাটার্ন
INএকটি কলামের জন্য একাধিক সম্ভাব্য মান উল্লেখ করা


 

Content added By

ডেটাবেজের তথ্য গুলোকে এক বা একাধিক শর্ত দ্বারা ফিল্টার করার জন্য AND এবং OR অপারেটর দুটি ব্যবহার করা হয়।


SQL AND এবং OR অপারেটর

AND অপারেটরটি তখনই তথ্য গুলো দেখাবে যখন এর প্রথম এবং দ্বিতীয় শর্তটি সত্য হবে।

OR অপারেটরটি তখনই তথ্য গুলো দেখাবে যখন এর প্রথম অথবা দ্বিতীয় শর্তের মধ্যে যেকোন একটি শর্ত সত্য হবে।


 

নমুনা ডেটাবেজ

AND এবং OR অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।


AND অপারেটরের উদাহরণ

নিচের SQL AND স্টেটমেন্টি ডেটাবেজের "student_details" টেবিল থেকে প্রতিষ্ঠান "জাতীয় বিশ্ববিদ্যালয়" এবং ঠিকানা "ঢাকা" এর অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE institute="জাতীয় বিশ্ববিদ্যালয়"
AND Address="ঢাকা";

 


OR অপারেটরের উদাহরণ

নিচের SQLOR স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে "চাঁদপুর" অথবা "ঢাকা" ঠিকানার অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address="চাঁদপুর"
OR Address="ঢাকা";

 


 

AND এবং OR একত্রে ব্যবহার

আপনি AND  এবং OR অপারেটর দুটিকে একত্রে ব্যবহার করতে পারেন। যদি অধিক জটিল এক্সপ্রেশন হয় সে ক্ষেত্রে প্রথম বন্ধনী ব্যবহার করতে পারেন।

নিচের SQL স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে প্রতিষ্ঠান "জাতীয় বিশ্ববিদ্যালয" এবং "চাঁদপুর" অথবা "ঢাকা" ঠিকানার অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE institute="জাতীয় বিশ্ববিদ্যালয়"
AND (Address="চাঁদপুর" OR Address="ঢাকা");
Content added By

UPDATE স্টেটমেন্টটি ব্যবহার করে টেবিলের তথ্য গুলোকে আপডেট করা যায়।


UPDATE স্টেটমেন্ট

ডেটাবেজের তথ্য আপডেট করার জন্য UPDATE স্টেটমেন্ট ব্যবহার করা হয়।

SQL UPDATE সিনট্যাক্স

UPDATE name_of_table
SET name_of_column1=value1, name_of_column2=value2, ...
WHERE column=value;

 

লক্ষ্য করলে দেখবেন যে, UPDATE স্টেটমেন্ট এর মধ্যে WHEREকন্ডিশনটি ব্যবহার করা হয়েছে!
কোন কোন তথ্যগুলো আপডেট করতে হবে নির্দিষ্ট করে দেওয়ার জন্য WHERE কন্ডিশনটি ব্যবহার করা হয়। যদি এটি ব্যবহার করা না হয় তাহলে ডেটাবেজে অবস্থিত সকল তথ্য আপডেট হয়ে যাবে!


নমুনা ডেটাবেজ

UPDATE স্টেটমেন্টের ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

UPDATE উদাহরণ

নিচের UPDATE স্টেটমেন্টের মাধ্যমে "Student_details" টেবিলের "ফরহাদ উদ্দিন" এর "Roll_number" এবং "Address" কলামের তথ্য আপডেট করা হয়েছে।

উদাহরণ

UPDATE Student_details
SET Roll_number="১৩১", Address="চাঁদপুর"
WHERE Student_name="ফরহাদ
উদ্দিন";

 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১৩১ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

Update সতর্কতা!

ডেটাবেজের তথ্য আপডেট করার সময় অবশ্যই সতর্কতা অবলম্বন করা উচিত। তথ্য আপডেট করার সময় যদি WHERE কন্ডিশনটি ব্যবহার না করেন তাহলে সমস্ত রেকর্ড আপডেট হয়ে যাবে!

উদাহরণ

UPDATE Student_details
SET Roll_number="১৩১", Address="ঢাকা";

 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১৩১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়ঢাকা


 

Content added By

DELETEস্টেটমেন্ট ব্যবহার করে টেবিলের তথ্য ডিলেট করা যায়।


SQL DELETE স্টেটমেন্ট

DELETE স্টেটমেন্টটি ব্যবহার করে টেবিলের সারি গুলোকে ডিলেট করা যায়।

SQL DELETE সিনট্যাক্স

DELETE FROM name_of_table
WHERE column=value; 

 

লক্ষ্য করলে দেখবেন যে, DELETE স্টেটমেন্ট এর মধ্যে WHERE কন্ডিশনটি ব্যবহার করা হয়েছে!
কোন কোন তথ্যগুলো আপডেট করতে হবে নির্দিষ্ট করে দেওয়ার জন্য WHERE কন্ডিশনটি ব্যবহার করা হয়। যদি এটি ব্যবহার করা না হয় তাহলে ডেটাবেজে অবস্থিত সকল তথ্য ডিলেট হয়ে যাবে!


 

নমুনা ডেটাবেজ

DELETE স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

DELETE উদাহরণ

নিচের DELETE স্টেটমেন্টের মাধ্যমে "Student_details" টেবিলের "তামজীদ হাসান" এর তথ্য delete করা হয়েছে।

 

উদাহরণ

DELETE FROM Student_details
WHERE Student_name="তামজীদ হাসান"; 

 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়ঢাকা

সকল তথ্য ডিলেট করা

একটি টেবিলকে ডিলেট না করেই এর সকল তথ্য ডিলেট করা সম্ভব। অর্থাৎ টেবিলের গঠন, এট্রিবিউট এবং ইন্ডেক্স গুলো যথাযথ অবস্থায় থেকে যাবে কিন্তু এর মধ্যে অন্তর্ভুক্ত তথ্য গুলো ডিলেট হয়ে যাবেঃ

DELETE FROM name_of_table;

 

অথবা
 

DELETE * FROM name_of_table;

 

বিঃদ্রঃ তথ্য ডিলেট করার সময় অবশ্যই সর্তকতা অবলম্বন করতে হবে, কারন একবার তথ্য ডিলেট হয়ে গেলে তা আর পুনরায় ফিরানো সম্ভব না!

Content added By

একটি কলাম থেকে নির্দিষ্ট প্যাটার্ন অনুযায়ী তথ্য অনুসন্ধান করার জন্য WHERE Clause এর সাথে SQL LIKE অপারেটরটি ব্যবহার করা হয়।


SQL LIKE অপারেটর

SQL LIKE অপারেটরটি একটি কলাম থেকে নির্দিষ্ট প্যাটার্ন অনুযায়ী তথ্য অনুসন্ধান করে।

SQL LIKE সিনট্যাক্স

SELECT name_of_column's
FROM name_of_table
WHERE name_of_column LIKE pattern;

 


নমুনা ডেটাবেজ

LIKE অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

SQL LIKE অপারেটরের উদাহরণ

নিম্নের SQL LIKEস্টেটমেন্টটি "Student_details" টেবিল থেকে "শিক্ষার্থীর নাম(Student_name)" কলামে অবস্থিত প্রথম অক্ষর "ম" বিশিষ্ট সকল তথ্যকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Student_name LIKE 'ম%';

 

বিঃদ্রঃ "%" চিহ্নটি প্যাটার্ন(pattern) এর পূর্বে অথবা পরে ওয়াইল্ডকার্ড(wildcard) নির্ধারণ করতে ব্যবহৃত হয়। পরবর্তীতে আপনি ওয়াইল্ডকার্ড সম্পর্কে আরো বেশী জানবেন।


 

নিম্নের SQL LIKE স্টেটমেন্টটি "Student_details" টেবিল থেকে "শিক্ষার্থীর নাম(Student_name)" কলামে অবস্থিত শেষ অক্ষর "ন" বিশিষ্ট সকল তথ্যকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Student_name LIKE '%ন';

 


 

নিম্নের SQL LIKE স্টেটমেন্টটি "Student_details" টেবিল থেকে "ঠিকানা(Address)" কলামে অবস্থিত যে সকল তথ্য গুলোতে "ঢাকা" রয়েছে ঐ সকল তথ্যকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address LIKE '%ঢাকা%';

 

NOT কীওয়ার্ড

NOT কিওয়ার্ড দ্বারা আপনি ঐ সকল তথ্য নিয়ে আসতে পারবেন যা প্যাটার্নের সাথে মিলে না।

নিম্নের SQL LIKE স্টেটমেন্টটি "Student_details" টেবিল থেকে "ঠিকানা(Address)" কলামে অবস্থিত যে সকল তথ্য গুলোতে "চাঁদপুর" অবস্থিত ঐ সকল তথ্যকে নিবেনাঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address NOT LIKE '%চাঁদপুর%';
Content added By

SQL SELECT TOP  কমান্ডটি ব্যবহার করে ডেটাবেজ থেকে নির্দিষ্ট সংখ্যক তথ্য পাওয়া যায়। হাজার হাজার তথ্য সম্বলিত টেবিল থেকে কাংখিত তথ্য খুঁজে বের করার জন্য SELECT TOP কমান্ডটি ব্যবহার করা হয়।

বিঃদ্রঃ সকল ডেটাবেজে SELECT TOP কমান্ডটি সার্পোট করে না। MySQL এর পরিবর্তে LIMIT ব্যবহার করে এবং Oracle এর পরিবর্তে ROWNUM  ব্যবহার করে।

MS Access/SQL Server সিনট্যাক্স

SELECT TOP number name_of_column's
FROM name_of_table; 

 

অথবা

SELECT TOP percent name_of_column's
FROM name_of_table; 

 


MySQL সিনট্যাক্স

SELECT name_of_column's
FROM name_of_table
LIMIT number; 

 

উদাহরণ

SELECT *
FROM Student_details
LIMIT 5; 

 


Oracle সিনট্যাক্স

SELECT name_of_column's
FROM name_of_table
WHERE ROWNUM <= number;

 

উদাহরণ

SELECT *
FROM Student_details
WHERE ROWNUM <=5;

 


নমুনা ডেটাবেজ

SELECT TOP স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

SQL SELECT TOP উদাহরণ

নিম্নের SQL SELECT TOP স্টেটমেন্টটি "Student_details" টেবিল থেকে প্রথম দুইটি রেকর্ডকে সিলেক্ট করবেঃ

উদাহরণ

SELECT TOP 2 * FROM Student_details;

SQL SELECT TOP PERCENT উদাহরণ

নিম্নের SQL SELECT TOP স্টেটমেন্টটি "Student_details" টেবিল থেকে প্রথম ৫০% রেকর্ডকে সিলেক্ট করবেঃ

উদাহরণ

SELECT TOP 50 PERCENT * FROM Student_details;
Content added By

এক বা একাধিক কলামের রেজাল্ট-সেট কে গ্রুপ করার জন্য Aggregate ফাংশন যেমন- MIN, MAX, AVG, COUNT, SUM ইত্যাদির সাথে প্রায়ই GROUP  BY  স্টেটমেন্টটি ব্যবহার করা হয়।


GROUP BY স্টেটমেন্ট

GROUP  BY স্টেটমেন্ট এর মাধ্যমে এক বা একাধিক কলামের রেজাল্ট-সেট কে একত্রিত(group) করা যায়।

SQL GROUP BY সিনট্যাক্স

SELECT aggregate_function(name_of_column), name_of_column
FROM name_of_table
GROUP BY name_of_column's; 

 

উদাহরণ

SELECT COUNT(id), Address
FROM Student_details
GROUP BY Address; 

 


নমুনা ডেটাবেজ

GROUP  BYস্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

নিচের অংশটি "Student_result" টেবিল থেকে নেওয়াঃ

আইডি নংরোল নাম্বারফলাফল
১০১A+
১০২A+
১০৩A+
১০৪A+
১০৫A+

SQL GROUP BY স্টেটমেন্টের উদাহরণ

এখন আমরা প্রতিটি শিক্ষার্থীর ফলাফল খুঁজে বের করবো।

নিম্নলিখিত SQL স্টেটমেন্ট দ্বারা আমরা GROUP  BY এর ব্যবহার দেখবোঃ

উদাহরণ

SELECT student_details.student_name,student_result.result AS
Result FROM student_result LEFT JOIN student_details
ON student_result.roll_number = student_details.roll_number
GROUP BY student_name;

 


কিছু গুরুত্বপূর্ণ Aggregate ফাংশন

  • MIN - একটি প্রদত্ত কলামের সর্বোনিম্ন মান রিটার্ন করে।
  • MAX - একটি প্রদত্ত কলামের সর্বোচ্চ মান রিটার্ন করে।
  • SUM - একটি প্রদত্ত কলামে সংখ্যামান-সমূহের যোগফল রিটার্ন করে।
  • AVG - একটি প্রদত্ত কলামের গড় মান রিটার্ন করে।
  • COUNT - প্রদত্ত কলামের মান-সমূহের মোট সংখ্যা রিটার্ন করে।
  • COUNT(*) - একটি টেবিলে মোট সারির সংখ্যা রিটার্ন করে।
Content added By

SQL দ্বারা আমরা এক টেবিল থেকে তথ্য অন্য টেবিলে কপি করতে পারি। আপনি SQL SELECT INTOস্টেটমেন্ট দ্বারা একটি টেবিল থেকে তথ্য কপি করে নতুন একটি টেবিলে রাখতে পারেন।


SQL SELECT INTO স্টেটমেন্ট

SQL SELECT INTO স্টেটমেন্টটি একটি টেবিলের তথ্য কপি করে নতুন একটি টেবিলে রাখে।

SQL SELECT INTO সিনট্যাক্স

আপনি নিম্নের সিনট্যাক্সের মাধ্যমে একটি টেবিলের সকল কলামকে কপি করে একটি নতুন টেবিলের মধ্যে রাখতে পারবেনঃ

SELECT *
INTO new_table IN external_database
FROM name_of_table;

 

অথবা আপনার ইচ্ছামত কলামকে কপি করে নতুন টেবিলে রাখতে পারেনঃ

SELECT name_of_column's
INTO new_table IN external_database
FROM name_of_table;

 

নতুন টেবিলটির কলামের নাম এবং টাইপ SELECT স্টেটমেন্টে ডিফাইন করা থাকে। আপনি ইচ্ছা করলেAS clause ব্যবহার করে তা পরিবর্তন করতে পারেন।


SQL SELECT INTO উদাহরণ

চলুন "Student_details" টেবিলের একটি ব্যাকআপ কপি তৈরী করিঃ

SELECT name_of_column's
INTO Student_details_Backup
FROM Student_details;

 

IN Clause ব্যবহার করে টেবিলের তথ্য গুলো অন্য একটি ডেটাবেজে কপি করিঃ

SELECT name_of_column's
INTO Student_details_Backup IN 'Backup_database.mdb'
FROM Student_details;

 

কিছু সংখ্যক কলাম একটি নতুন টেবিলে কপি করিঃ

SELECT Student_name, Address
INTO Student_details_Backup
FROM Student_details;

 

"Student_details" টেবিলের "ঢাকা" ঠিকানার অন্তর্ভুক্ত সকল তথ্য নতুন একটি টেবিলে কপি করিঃ

SELECT *
INTO Student_details_Backup
FROM Student_details
WHERE Address="ঢাকা";

 

একাধিক টেবিলের তথ্য একটি নতুন টেবিলে কপি করিঃ

SELECT Student_details.Student_name, Student_result.result
INTO Student_details_Backup
FROM Student_details
LEFT JOIN Student_result
ON Student_details.Roll_number = Student_result.Roll_number;

 

অন্য একটি টেবিলের মডেল(schema) ব্যবহার করেও SELECT INTO স্টেটমেন্ট একটি নতুন ও খালি টেবিল তৈরী করতে পারে। এক্ষেত্রে কুয়েরি করার সময় শুধুমাত্র একটি WHERE clause যোগ করলে কোন ডেটা রিটার্ন করবে নাঃ

SELECT *
INTO new_table
FROM name_of_table
WHERE 1=0;
Content added By

SQL দ্বারা আমরা এক টেবিলের তথ্য অন্য টেবিলে কপি করতে পারি। আপনি SQL SELECT INTO SELECT স্টেটমেন্টটি ব্যবহার করে এক টেবিলের তথ্য পূর্ব থেকে বিদ্যমান অন্য একটি টেবিলে কপি করে রাখতে পারেন।


SQL INSERT INTO ... SELECT স্টেটমেন্ট

SQL SELECT INTO SELECT স্টেটমেন্টটি এক টেবিল থেকে তথ্য কপি করে পূর্ব থেকে বিদ্যমান অন্য একটি টেবিলে জমা রাখে। এক্ষেত্রে টার্গেট টেবিলে বিদ্যমান কোনো সারি প্রভাবিত হবে না।

SQL INSERT INTO ... SELECT সিনট্যাক্স

আপনি একটি টেবিলের সকল কলামকে কপি করে পূর্ব থেকে বিদ্যমান একটি টেবিলের মধ্যে রাখতে পারেনঃ

INSERT INTO data_table
SELECT * FROM target_table;

 

অথবা আপনি আপনার ইচ্ছামত কলাম কপি করে পূর্ব থেকে বিদ্যমান টেবিলে রাখতে পারেনঃ

INSERT INTO data_table
(name_of_column)
SELECT name_of_column
FROM target_table;

 


নমুনা ডেটাবেজ

SELECT DISTINCT স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

নিচের অংশটি "Teacher_details" টেবিল থেকে নেওয়াঃ

আইডি নংশিক্ষকের নামঠিকানা
মোঃ সাইফুল ইসলামঢাকা
ডঃ নিতাই কুমার শাহারাজশাহী
মোঃ আবুল কালাম আজাদচাঁদপুর
রূপক রায়চাঁদপুর
নাদিমা আক্তারঢাকা

SQL INSERT INTO ... SELECT উদাহরণ

"Teacher_details" টেবিল থেকে কিছু কলামের তথ্য কপি করে "Student_details" টেবিলে রাখিঃ

উদাহরণ

INSERT INTO Student_details (Student_name, Address)
SELECT Teacher_name, Address FROM Teacher_details;

 

শুধুমাত্র "ঢাকা" ঠিকানার(Address) অন্তর্ভুক্ত শিক্ষকের তথ্য কপি করে "Student_details" টেবিলে রাখিঃ

উদাহরণ

INSERT INTO Student_details (Student_name, Address)
SELECT Teacher_name, Address FROM Teacher_details
WHERE Address="ঢাকা";
Content added By

একটি টেবিলের ডিফল্ট ভ্যালু  NULL থাকে।


SQL NOT NULL কনস্ট্রেইন্ট

কোনো ফিল্ডে(কলামে) NOT NULL  কনস্ট্রেইন্ট(Constraint) সেট করলে সেই ফিল্ড(কলাম) ফাঁকা(NULL ) ভ্যালু গ্রহণ করে না। সুতরাং NOT NULL কনস্ট্রেইন্টটি সংশ্লিষ্ট ফিল্ডে ভ্যালু রাখতে বাধ্য করে। অর্থাৎ আপনি টেবিলে কোন তথ্য ইনসার্ট অথবা আপডেট করতে চাইলে ঐ ফিল্ডে অবশ্যই ভ্যালু ইনসার্ট করতে হবে, অন্যথায় টেবিলে কোন তথ্য ইনসার্ট অথবা আপডেট করতে পারবেন না।

নিম্নের SQL কনস্ট্রেইন্টটি "Roll_number" এবং "Student_name" কলামে NULL ভ্যালু গ্রহণ করবে নাঃ

উদাহরণ

CREATE TABLE Student_NotNull(
Id int auto_increment,
Roll_number varchar(255) NOT NULL,
Student_name varchar(255) NOT NULL,
Address varchar(255)
);

 

উপরের তৈরিকৃত টেবিলের "Roll_number" এবং "Student_name" কলামে তথ্য ইনপুট করা ব্যাতিত সম্পূর্ণ টেবিলে কোন তথ্য ইনপুট বা আপডেট করা যাবে না।

Content added By

UNIQUE কনস্ট্রেইন্ট(Constraint) দ্বারা ডেটাবেজে ইউনিক(Unique) রেকর্ড ইনসার্ট করা হয়। এক বা একাধিক কলামের রেকর্ডকে ইউনিক করতে UNIQUE এবং PRIMARY KEYকনস্ট্রেইন্ট উভই ব্যবহার করা হয়। একটি PRIMARY KEY কনস্ট্রেইন্ট এর মধ্যে স্বয়ংক্রিয়ভাবে UNIQUE কনস্ট্রেইন্ট ডিফাইন করা থাকে।

মনে রাখবেন, একটি টেবিলের একাধিক কলামে UNIQUE কনস্ট্রেইন্ট থাকতে পারে কিন্তু একটি টেবিলের শুধুমাত্র একটি কলামেই PRIMARY KEY কনস্ট্রেইন্ট ব্যবহার করা যায়।


টেবিল তৈরির সময় SQL UNIQUE কনস্ট্রেইন্ট এর ব্যবহার

নিম্নের SQL স্টেটম্রন্টটি "Student_details" টেবিল তৈরির সময় "Roll_number" কলামটি UNIQUE কনস্ট্রেইন্ট এর মাধ্যমে ইউনিক হবে।

MySQL এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll,
    Roll_number varchar(255),
    Student_name varchar(255),
    Institute varchar(255),
    Address varchar(255),
    UNIQUE(roll_number)
);

 

Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll,
    Roll_number varchar(255) UNIQUE,
    Student_name varchar(255),
    Institute varchar(255),
    Address varchar(255)
);

 


একটি UNIQUE কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255),
CONSTRAINT Student_id UNIQUE (Id, Roll_number)
);

 

পূর্বের তৈরি টেবিলে SQL UNIQUE কনস্ট্রেইন্টের ব্যবহার

ডেটাবেজে পূর্ব থেকে বিদ্যমান একটি টেবিলের "Id" কলামকে UNIQUE করতে ALTER TABLEস্টেটমেন্টটের সাথে নিম্নের ন্যায় AND UNIQUE কনস্ট্রেইন্ট ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ADD UNIQUE (Id);

 


 

একটি UNIQUE কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ADD CONSTRAINT Student_id UNIQUE (Id, Roll_number);

 


UNIQUE কনস্ট্রেইন্ট ডিলেট করা

UNIQUE কনস্ট্রেইন্ট ডিলেট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL এর জন্যঃ

ALTER TABLE Student_details
DROP INDEX Student_id;

 

Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
DROP CONSTRAINT Student_id;
Content added By

Default কনস্ট্রেইন্ট(Constraint) ব্যবহার করে কলামের মধ্যে একটি ডিফল্ট(Default) ভ্যালু ইনপুট করা যায়। কলামে কোন নির্দিষ্ট মান ইনপুট না করা হলে সকল নতুন রেকর্ডের মধ্যে স্বয়ংক্রিয়ভাবে Defaultভ্যালুটি যোগ হয়ে যায়।


টেবিল তৈরির ক্ষেত্রে SQL Default কনস্ট্রেইন্টের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল তৈরী করার সময় "Institute" কলামে Default  কনস্ট্রেইন্ট সেট করবেঃ

MySQL /Oracle/ SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll,
    Roll_number varchar(255),
    Student_name varchar(255),
    Institute varchar(255) DEFAULT 'জাতীয় বিশ্ববিদ্যালয়',
    Address varchar(255)
);

 

সিস্টেম ভ্যালু ইনর্সাট করার জন্য ফাংসশন যেমন-GETDATE() এর সাথেও Default  কনস্ট্রেইন্ট ব্যবহার করা হয়ঃ

CREATE TABLE Student_attendance(
	Id int NOT NUll,
    Roll_number varchar(255),
    Attendance varchar(255),
    Admission_date date DEFAULT GETDATE()
);

 


 

পূর্বের তৈরি টেবিলে SQL Default কনস্ট্রেইন্টের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি পূর্বে তৈরিকৃত "Student_details" টেবিলের "Institute" কলামে Default কনস্ট্রেইন্ট সেট করবেঃ


 

MySQL এর জন্যঃ

ALTER TABLE Student_details
ALTER Institute SET DEFAULT 'জাতীয় বিশ্ববিদ্যালয়';

 


 

Oracle এর জন্যঃ

ALTER TABLE Student_details
MODIFY Institute DEFAULT 'জাতীয় বিশ্ববিদ্যালয়';

 


SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ALTER COLUMN Institute SET DEFAULT 'জাতীয় বিশ্ববিদ্যালয়';

 

Default কনস্ট্রেইন্ট ডিলেট করা

একটি Default কনস্ট্রেইন্ট ডিলিট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করুনঃ

MySQL এর জন্যঃ

ALTER TABLE Student_details
ALTER Institute DROP DEFAULT;

 

Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ALTER COLUMN Institute DROP DEFAULT;
Content added By

একটি কলাম কতটি ভ্যালু গ্রহণ করবে তার রেঞ্জ নির্ধারন করতে CHECKকনস্ট্রেইন্ট(Constraint) ব্যবহার করা হয়। আপনি যদি একটি নির্দিষ্ট কলামের জন্য CHECKকনস্ট্রেইন্ট নির্ধারন করে দেন তাহলে এটি শুধুমাত্র ঐ কলামের ভ্যালুর জন্যই প্রযোজ্য হবে। আপনি যদি একটি টেবিলের জন্য কনস্ট্রেইন্ট ডিফাইন করে থাকেন তাহলে তা টেবিলে অন্তর্ভূূক্ত সকল কলামের জন্যই প্রযোজ্য হবে।


SQL টেবিল তৈরীর সময় CHECK কনস্ট্রেইন্টের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল তৈরী করার সময় "Id" কলামে CHECKকনস্ট্রেইন্ট সেট করবে। এক্ষেত্রে CHECKকনস্ট্রেইন্ট নির্ধারন করে দিবে যেন "Id" কলামের ভ্যালু-সমূহ শূণ্য(0) থেকে বড় হয়।

MySQL এর জন্যঃ

CREATE TABLE Student_details(
  Id int NOT NUll,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255),
CHECK (Id>0)
);

 


 

Oracle/SQL Server/MS Acces এর জন্যঃ

CREATE TABLE Student_details(
  Id int NOT NUll CHECK (Id>0),
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255)
);

 


একটি CHECKকনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে CHECKকনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।

MySQL / SQL Server / Oracle / MS Access এর জন্যঃ

CREATE TABLE Student_details(
  Id int NOT NUll,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255),
  CONSTRAINT check_student CHECK (Id>0 AND Address='জাতীয় বিশ্ববিদ্যালয়')
);

 


 

পূর্বের তৈরি টেবিলে SQL UNIQUE কনস্ট্রেইন্ট এর ব্যবহার

ডেটাবেজে পূর্ব থেকে বিদ্যমান একটি টেবিলের "Id" কলামে CHECK সেট করতে ALTER TABLE স্টেটমেন্টটের সাথে নিম্নের ন্যায় ADD CHECK কনস্ট্রেইন্ট ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ADD CHECK (Id>0);

 


 

একটি CHECKকনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে CHECKকনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়।

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
ADD CONSTRAINT check_student CHECK (Id>0 AND Address='জাতীয় বিশ্ববিদ্যালয়');

 


একটি CHECK কনস্ট্রেইন্ট ডিলেট করা

একটি CHECKকনস্ট্রেইন্ট ডিলেট করতে, নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়ঃ

MySQL এর জন্যঃ

ALTER TABLE Student_details
DROP CHECK check_student;

 


 

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details
DROP CONSTRAINT check_student;
Content added By

PRIMARY KEY কনস্ট্রেইন্ট(Constraint) ডেটাবেজ টেবিলের প্রতিটি রেকর্ডকে ইউনিকভাবেে শনাক্ত করে। Primary key এর ভ্যালু-সমূহ অবশ্যই ইউনিক হতে হবে।

primary key বিশিষ্ট কলামে NULL ভ্যালু থাকতে পারবে না। অশিকাংশ টেবিলেই primary key থাকা উচিৎ এবং প্রত্যেক টেবিলে শুধুমাত্র একটি primary key থাকতে পারবে।


টেবিল তৈরির সময় SQL PRIMARY KEY কনস্ট্রেইন্ট এর ব্যবহার।

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল তৈরির সময় "Id" কলামে PRIMARY KEY কনস্ট্রেইন্ট সেট করবেঃ

MySQL এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll,
    Roll_number varchar(255),
    Student_name varchar(255),
    Institute varchar(255),
    Address varchar(255),   
    PRIMARY KEY (Id)
);

 


 

Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll PRIMARY KEY,
    Roll_number varchar(255),
    Student_name varchar(255),
    Institute varchar(255),
    Address varchar(255)
);

 


 

একটি PRIMARY KEY কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে PRIMARY KEY কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যাক্সটি ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_details(
	Id int NOT NUll PRIMARY KEY,
    Roll_number varchar(255),
    Student_name varchar(255),
    Institute varchar(255),
    Address varchar(255),
    CONSTRAINT Student_Id PRIMARY KEY (Id,Roll_number)
);

 


 

বিঃদ্রঃ উপরের উদাহরণে শুধুমাত্র একটি PRIMARY KEY(Student_Id) রয়েছে। যদিও primary key ভ্যালুটি দুইটি কলামের(Id + Roll_number) উপর ভিত্তি করে গঠিত।


পূর্বের তৈরি টেবিলে SQL PRIMARY KEY কনস্ট্রেইন্ট এর ব্যবহার।

ডেটাবেজে পূর্ব থেকে বিদ্যমান একটি টেবিলের "Id" কলামে PRIMARY KEY সেট করতে ALTER TABLE স্টেটমেন্টটের সাথে নিম্নের ন্যায় add PRIMARY KEY কনস্ট্রেইন্ট ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details(
ADD PRIMARY KEY (Id);

 


 

একটি PRIMARY KEY কনস্ট্রেইন্ট এর নাম দেওয়ার জন্য এবং একাধিক কলামে PRIMARY KEY কনস্ট্রেইন্ট ডিফাইন করার জন্য নিম্নের SQL সিনট্যক্সটি ব্যবহার করা হয়।

মাMySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details(
ADD CONSTRAINT Student_Id PRIMARY KEY (Id,Roll_number);

 

বিঃদ্রঃ ALTER TABLE স্টেটমেন্ট ব্যবহার করে কোনো কলামে primary key যোগ করতে হলে টেবিল তৈরির সময়ে ঐ কলামকে অবশ্যই প্রাইমারি কী কলাম হিসাবে ডিক্লেয়ার করতে হবে যেন সে NULL ভ্যালু গ্রহণ করতে না পারে।


PRIMARY KEY কনস্ট্রেইন্ট ডিলেট করা

PRIMARY KEY কনস্ট্রেইন্ট ডিলেট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL এর জন্যঃ

ALTER TABLE Student_details(
DROP PRIMARY KEY;

 


 

Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_details(
DROP CONSTRAINT Student_Id;
Content added By

এক টেবিলের FOREIGN KEY অন্য টেবিলের PRIMARY KEY কে নির্দেশ করে। সুতরাং দুটি টেবিলের মধ্যে সংযোগ সৃষ্টি করে।

দুটি টেবিলের সংযোগ বিচ্ছিন্ন করে এমন ক্রিয়া কলাপে FOREIGN KEY কনস্ট্রেইন্ট বাধা দেয়।

FOREIGN KEY কনস্ট্রেইন্ট ফরেন কী কলামে অবৈধ ডেটা ইনপুটেও বাধা দেয়, কারন প্রাইমারি কী কলাম এর ভ্যালুই হলো ফরেন কি কলাম এর ভ্যালু।

চলুন একটি উদাহরণের সাহায্য FOREIGN KEY বুঝার চেষ্টা করি। নিম্নের টেবিল দুটিতে ভালভাবে লক্ষ্য করুনঃ

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

নিচের অংশটি "Student_result" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারফলাফল
১০১A+
১০২A+
১০৩A+
১০৪A+
১০৫A+

উপরের টেবিল দুটিতে লক্ষ্য করলে দেখবেন, "Student_result" টেবিলের "Roll_number" কলামটি "Student_details" টেবিলের "Roll_number" কলামকে নির্দেশ(Point) করছে।

"Student_details" টেবিলের "Roll_number" কলামটি হচ্ছে ঐ টেবিলের PRIMARY KEY কনস্ট্রেইন্ট এবং "Student_result" টেবিলের "Roll_number" কলামটি হচ্ছে "Student_result" টেবিলের FOREIGN KEY কনস্ট্রেইন্ট।

বিঃদ্রঃ PRIMARY KEY এবং FOREIGN KEY কে যথাক্রমে পিতা এবং পুত্র বলা হয়। পুত্রের কোনো কিছু প্রয়োজন হলে সে পিতার কাছেই চাই। একইভাবে FOREIGN KEY তার প্রয়োজনে PRIMARY KEY এর কাছে রেফার করে।


 

টেবিল তৈরির সময় FOREIGN KEY কনস্ট্রেইন্ট সেট করা

নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল তৈরি করার সময় "Roll_number" কলামে একটি FOREIGN KEY কনস্ট্রেইন্ট সেট করবেঃ

MySQL এর জন্যঃ

CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) NOT NULL,
    Result varchar(255) NOT NULL,
    PRIMARY KEY (Id),
    FOREIGN KEY (Roll_number) REFERENCES Student_details(Roll_number)
);

 


 

Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) FOREIGN KEY REFERENCES Student_details(Roll_number),
    Result varchar(255) NOT NULL
);

 


 

FOREIGN KEY কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

CREATE TABLE Student_result(
	Id int NOT NUll,
    Roll_number varchar(255) NOT NULL,
    Result varchar(255) NOT NULL,
    PRIMARY KEY (Id),
    CONSTRAINT link_Student_result FOREIGN KEY(Roll_number) REFERENCES Student_details(Roll_number)
);

 


টেবিল পরিবর্তন করার সময় FOREIGN KEY সেট করা

নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল পরিবর্তন(modify) করার সময় "Roll_number" কলামে FOREIGN KEY কনস্ট্রেইন্ট সেট করবেঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);

 

FOREIGN KEY কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ

MySQL/Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_result
ADD CONSTRAINT link_Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);

 


FOREIGN KEY কনস্ট্রেইন্ট ডিলেট

FOREIGN KEY কনস্ট্রেইন্টকে ডিলেট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করুনঃ

MySQL এর জন্যঃ

ALTER TABLE Student_result
DROP FOREIGN KEY link_Student_result;

 


 

Oracle/SQL Server/MS Access এর জন্যঃ

ALTER TABLE Student_result
DROP CONSTRAINT link_Student_result;
Content added By

IN অপারেটর দ্বারা WHERE clause এর মধ্যে একত্রে একাধিক ভ্যালু উল্লেখ করা যায়।


SQL IN সিনটেক্স

SELECT name_of_column's
FROM name_of_table
WHERE name_of_column IN (value_1, value_2,...);

 


 

নমুনা ডেটাবেজ

IN অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

IN অপারেটরের উদাহরণ

নিম্নের SQL IN স্টেটমেন্টটি "Student_details" টেবিল থেকে "ঢাকা" অথবা "রাজশাহী" শহরের রেকর্ডকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address IN ('ঢাকা','রাজশাহী');
Content added By

একটি নির্দিষ্ট রেঞ্জের মধ্যে ভ্যালু সিলেক্ট করার জন্য SQL BETWEEN অপারেটর ব্যবহার করা হয়।


SQL BETWEEN অপারেটর

BETWEEN অপারেটর একটি নির্দিষ্ট রেঞ্জের ভ্যালু সিলেক্ট করে। এই ভ্যালু-সমূহ টেক্সট, সংখ্যা অথবা তারিখ হতে পারে।

SQL BETWEEN সিনট্যাক্স

SELECT name_of_column's
FROM name_of_table
WHERE name_of_column BETWEEN value_1 AND value_2;

 


 

নমুনা ডেটাবেজ

IN অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

 

BETWEEN অপারেটরের উদাহরণ

নিম্নের SQL BETWEEN স্টেটমেন্টটি "Student_details" টেবিলের "Roll_number" কলামের ১০১ থেকে ১০৫ রেঞ্জ পর্যন্ত সকল রেকর্ড গুলো নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Roll_number BETWEEN '১০১' AND '১০৫';

 


 


সতর্কতাঃ BETWEEN অপারেটরটি বিভিন্ন ডেটাবেজে বিভিন্ন ফলাফল দেখাতে পারে!

  • কিছু ডেটাবেজে BETWEEN অপারেটরটি টেষ্ট ভ্যালুসহ এর মাঝখানের ভ্যালুগুলোর জন্য ফলাফল দেয়।
  • আবার কিছু ডেটাবেজে টেষ্ট ভ্যালুছাড়া এর মাঝখানের ভ্যালুগুলোর জন্য ফলাফল দেয়।
  • আবার কিছু ডেটাবেজে প্রথম টেষ্ট ভ্যালুসহ এবং শেষ টেষ্ট ভ্যালু ছাড়া এর মাঝখানের ভ্যালুগুলোর জন্য ফলাফল দেয়।

সুতরাং BETWEEN নিয়ে কাজ করার পূর্বে BETWEEN অপারেটরটি আপনার ডেটাবেজে কিভাবে কাজ করে তা চেক করে দেখুন!


NOT BETWEEN অপারেটরের উদাহরণ

পূর্ববর্তী উদাহরণে আমরা রেঞ্জের ভিতরের ভ্যলু-সমূহ সিলেক্ট করেছিলাম। আর এই উদাহরণে আমরা ঐ নির্দিষ্ট রেঞ্জের বাইরের ভ্যালু-সমূহ সিলেক্ট করবো। এজন্য আমরা BETWEEN এর পরিবর্তে NOT BETWEEN ব্যবহার করবো।

উদাহরণ

SELECT * FROM Student_details
WHERE Roll_number NOT BETWEEN '১০১' AND '১০৫';

 


 


BETWEEN এবং IN অপারেটর একত্রে ব্যবহার করা

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিলের "Roll_number" কলামের ১০১ থেকে ১১০ রেঞ্জ পর্যন্ত রেকর্ড গুলো নিয়ে আসবে, কিন্তু ৪, ৭ এবং ৯ "Id" বিশিষ্ট রেকর্ড গুলো দেখাবে নাঃ

উদাহরণ

SELECT * FROM Student_details
WHERE (Roll_number BETWEEN '১০১' AND '১১০')
AND NOT Id IN(৪, ৭, ৯);

 


 


টেক্সট ভ্যালুসহ BETWEEN অপারেটরের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল এর রেকর্ড-সমূহের মধ্যে যে সকল "শিক্ষার্থীর নাম(Student_name)" 'ক' থেকে 'ম' পর্যন্ত অক্ষর দ্বারা শুরু হয়েছে শুধুমাত্র তাদেরকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Student_name BETWEEN 'ক' AND 'ম';

 


 


টেক্সট ভ্যালুসহ NOT BETWEEN অপারেটরের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিল এর রেকর্ড-সমূহের মধ্যে যে সকল "শিক্ষার্থীর নাম(Student_name)" 'ক' থেকে 'ম' পর্যন্ত অক্ষর দ্বারা শুরু হয়েছে শুধুমাত্র তাদেরকে ছাড়া বাকীদেরকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Student_name NOT BETWEEN 'ক' AND 'ম';

 


 


 

নমুনা ডেটাবেজ

নিচের অংশটি "Student_attendance" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশতকরা উপস্থিতিভর্তির তারিখ
১০১৮৯%০১-১১-২০১৫
১০২৯১%০১-১১-২০১৫
১০৩৮০%০১-১১-২০১৫
১০৪৭৫%০২-১১-২০১৫
১০৫৭৭%০২-১১-২০১৫

ডেট ভ্যালুসহ BETWEEN অপারেটরের ব্যবহার

নিম্নের SQL স্টেটমেন্টটি "Student_attendance" টেবিল এর রেকর্ড-সমূহের মধ্যে যে সকল শিক্ষার্থীর "ভর্তির তারিখ(Admission_date)" '০১-১১-২০১৫' থেকে '১০-১১-২০১৫' এর মধ্যে শুধুমাত্র তাদেরকে নিয়ে আসবেঃ

উদাহরণ

SELECT * FROM Student_attendance
WHERE Admission_date BETWEEN '০১-১১-২০১৫' AND '১০-১১-২০১৫'
Content added By

যখন কোনো টেবিলের মধ্যে নতুন তথ্য যোগ করা হবে তখন Auto-increment এট্রিবিউটটি একটি নির্দিষ্ট কলামের জন্য একটি ইউনিক নম্বর তৈরি করবে।


SQL ফিল্ড AUTO INCREMENT

Auto-increment এট্রিবিউটটি ডেটাবেজ টেবিলের প্রত্যেক নতুন সারির জন্য একটি ইউনিক আইডেন্টিটি জেনারেট করে। ডেটাবেজ টেবিলে তথ্য ইনপুট করার সময় আপনি এমনটা চাইতেই পারেন যে, প্রত্যেক সারি ইনপুটের জন্য একটি ইউনিক নম্বর তৈরি হোক।

এক্ষেত্রে আপনি একটি auto-increment ফিল্ড(column) তৈরি করতে পারেন। আপনার নতুন তথ্য ইনপুট করার সাথে সাথে প্রত্যেক সারি ইনপুটের জন্য এটি স্বয়ংক্রিয়ভাবে একটি ইউনিক নম্বর জেনারেট করবে।

প্রতি ফিল্ডের ক্ষেত্রে এটি স্বয়ংক্রিয়ভাবে বৃদ্ধি পাবে। আর আমরা বেশীরভাগ সময়েই চাই টেবিলে নতুন তথ্য যোগ হওয়ার সাথে সাথে primary key এর মান স্বয়ংক্রিয়ভাবে তৈরি হয়ে যাক।। টেবিলের মধ্যে auto-increment ফিল্ড তৈরি করার মাধ্যমে আমরা এটি করতে পারি।


MySQL সিনট্যাক্স

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিলের "Id" কলামকে primary key ফিল্ডে রূপান্তর করবে এবং এটি auto-increment হবেঃ

CREATE TABLE Student_details(
  Id int NOT NUll AUTO_INCREMENT,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255),
  PRIMARY KEY (Id)
);

 

MySQL এ কোনো ফিল্ডের মান স্বয়ংক্রিয়ভাবে বৃদ্ধি করার জন্য AUTO_INCREMENT কিওয়ার্ডটি ব্যবহার করা হয়। ডিফল্টভাবে AUTO_INCREMENT এর মান ১ থেকে শুরু হয় এবং প্রতিটি নতুন রেকর্ডের জন্য ১ করে বৃদ্ধি পায়।

যদি AUTO_INCREMENT এর মান অন্য কোনো মান দ্বারা শুরু করতে চান তাহলে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করতে হবেঃ

ALTER TABLE Student_details AUTO_INCREMENT=100;

 


 

যখন আমরা "Student_details" টেবিলে তথ্য ইনপুট করবো তখন "Id" কলামের জন্য কোনো তথ্য ইনপুট করবো না, কারন এর জন্য একটি ইউনিক মান স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যাবেঃ

INSERT INTO Student_details (Roll_number,Student_name)
VALUES ('১৩১','শাহরিয়ার হাসান');

 

উপরের SQL স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন তথ্য ইনপুট করবে।
"Id" কলামে স্বয়ংক্রিয়ভাবেই একটি ইউনিক মান যুক্ত হয়ে যাবে। "রোল নাম্বার(Roll_number)" কলামে "১৩১" এবং "শিক্ষার্থীর নাম(Student_name)" কলামে "শাহরিয়ার হাসান" মান যুক্ত করবে।


SQL Server এর সিনট্যাক্স

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিলের "Id" কলামকে primary key ফিল্ডে রূপান্তর করবে এবং এটি auto-increment হবেঃ

CREATE TABLE Student_details(
  Id int IDENTITY(1,1) PRIMARY KEY,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255)
);

 

MS SQL Server-এ কোনো ফিল্ডের মান স্বয়ংক্রিয়ভাবে বৃদ্ধি করার জন্য IDENTITY কিওয়ার্ডটি ব্যবহার করা হয়। ডিফল্টভাবে IDENTITY এর মান ১ থেকে শুরু হয় এবং প্রতিটি নতুন রেকর্ডের জন্য ১ করে বৃদ্ধি পায়।

বিঃদ্রঃ আপনি "Id" কলামের শুরুর মান এবং বৃদ্ধি হওয়ার মান নির্দিষ্ট করে দেওয়ার জন্য নিম্নের সিনট্যাক্সটি ব্যবহার করতে পারেনঃ

IDENTITY(শুরুর মান, বৃদ্ধির মান)

 

আমরা যখন "Student_details" টেবিলে তথ্য ইনপুট করবো তখন "Id" কলামের জন্য কোনো তথ্য ইনপুট করবো না, কারন এর জন্য টেবিলে একটি ইউনিক মান স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যাবেঃ

INSERT INTO Student_details (Roll_number,Student_name)
VALUES ('১৩১','শাহরিয়ার হাসান');

 

উপরের SQL স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন তথ্য ইনপুট করবে। "Id" কলামে একটি মান স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যাবে। আর "রোল নাম্বার(Roll_number)" কলামে "১৩১" এবং "শিক্ষার্থীর নাম(Student_name)" কলামে "শাহরিয়ার হাসান" মান যুক্ত করবে।


 

MS Access এর সিনট্যাক্স

নিম্নের SQL স্টেটমেন্টটি "Student_details" টেবিলের "Id" কলামকে primary key ফিল্ডে রূপান্তর করবে এবং এটি auto-increment হবেঃ

CREATE TABLE Student_details(
  Id Integer PRIMARY KEY AUTOINCREMENT,
  Roll_number varchar(255),
  Student_name varchar(255),
  Institute varchar(255),
  Address varchar(255)
);

 

MS Access -এ কোনো ফিল্ডের মান স্বয়ংক্রিয়ভাবে বৃদ্ধি করার জন্য AUTOINCREMENT কিওয়ার্ডটি ব্যবহার করা হয়। ডিফল্টভাবে AUTOINCREMENT এর মান ১ থেকে শুরু হয় এবং প্রতিটি নতুন রেকর্ডের জন্য ১ করে বৃদ্ধি পায়।

বিঃদ্রঃ আপনি "Id" কলামের শুরুর মান এবং বৃদ্ধি হওয়ার মান নির্দিষ্ট করে দেওয়ার জন্য নিম্নের সিন্ট্যাক্সটি ব্যবহার করতে পারেনঃ

IDENTITY(শুরুর মান, বৃদ্ধির মান)

 

আমরা যখন "Student_details" টেবিলে তথ্য ইনপুট করবো তখন "Id" কলামের জন্য কোনো তথ্য ইনপুট করবো না, কারন এর জন্য টেবিলে একটি ইউনিক মান স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যাবেঃ

INSERT INTO Student_details (Roll_number,Student_name)
VALUES ('১৩১','শাহরিয়ার হাসান');

 

উপরের SQL স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন তথ্য ইনপুট করবে। "Id" কলামে স্বয়ংক্রিয়ভাবেই একটি ইউনিক মান যুক্ত হয়ে যাবে। "রোল নাম্বার(Roll_number)" কলামে "১৩১" এবং "শিক্ষার্থীর নাম(Student_name)" কলামে "শাহরিয়ার হাসান" মান যুক্ত করবে।


Oracle এর সিনট্যাক্স

উপরের কোড থেকে ওরাকলের কোড একটু ভিন্ন। সিকুয়েন্স অবজেক্টের মাধ্যমে আপনি একটি auto-increment ফিল্ড তৈরি করতে পারেন। এই অবজেক্টটি নম্বরের একটি সিকুয়েন্স অবজেক্ট তৈরি করে।

নিম্নে CREATE SEQUENCE এর সিনট্যাক্স দেওয়া হলঃ

CREATE SEQUENCE Student_id
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

 

উপরের কোডটি "Student_id" নামে একটি সিকুয়েন্স অবজেক্ট তৈরি করবে। যাহা ১ থেকে শুরু হবে এবং এক এক করে বৃদ্ধি পাবে। এছাড়া এটি পারফরম্যান্সের জন্য ১০ টি পর্যন্ত মান ক্যাশ(cache) করে রাখবে। মেমরি দ্রুত অ্যাক্সেস করার জন্য ক্যাশ অপসনটি মেমোরিতে জমাকৃত মান নির্ধারন করে। ।

এখন আমরা "Student_details" টেবিলে নতুন তথ্য ইনপুট করবো। এক্ষেত্রে আমরা nextval ফাংশনটি ব্যবহার করবো। এই ফাংশনটি "Student_id" সিকুয়েন্স থেকে পরবর্তী মান ধারন করবেঃ

INSERT INTO Student_details (Id, Roll_number,Student_name)
VALUES (Student_id.nextval, '১৩১','শাহরিয়ার হাসান');

 

উপরের SQL স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন তথ্য ইনপুট করবে। Student_id সিকুয়েন্স থেকে "Id" কলামে স্বয়ংক্রিয়ভাবেই ইউনিক মান যুক্ত হয়ে যাবে। "রোল নাম্বার(Roll_number)" কলামে "১৩১" এবং "শিক্ষার্থীর নাম(Student_name)" কলামে "শাহরিয়ার হাসান" মান যুক্ত করবে।

Content added By

Promotion